/**
    @brief Ce fichier gère la caisse à points
    @author CC
    @file CaisseAPoint.H
    @version alpha mode texte
    @date 2008/04/25
*/

#ifndef _CAISSEAPOINT
#define _CAISSEAPOINT

#include "Joueur.H"


/**
    @brief structure CaisseAPoint
    @param NbPoint représente le nombre de points que contient la caisse à points à chaque instant
*/

struct CaisseAPoint
{
    int NbPoint;
};

/**
    @brief initialise la caisse a point a 0 NbPoint
    @param [in, out] cap de type CaisseAPoint
    @note mutateur
*/

void initCaisseAPoint(CaisseAPoint & cap);

/**
    @brief donne le nombre de point au joueur correspondant et vide cette dernière
    @param [in, out] cap de type CaisseAPoint, [in, out] j de type Joueur
    @note mutateur
*/

void videCaisseAPoint(CaisseAPoint & cap, Joueur & j);

/**
    @brief ajoute les points du joueur concerné dans la caisse à points
    @param [in, out] cap de type CaisseAPoint, [in, out] j de type Joueur
    @note mutateur
*/

void ajoutePointsJoueurCaisseAPoint(CaisseAPoint & cap, Joueur & j);

/**
    @brief accède au nombre de points contenus dans la caisse à points
    @param [in, out] cap de type CaisseAPoint
    @return renvoie le nombre de points contenu dans la caisse à points
    @note accesseur
*/

int pointCaisseAPoint(CaisseAPoint & cap);

/**
    @brief modifie le nombre de points contenu dans la caisse à points
    @param [in, out] cap de type CaisseAPoint et n de type int
    @note mutateur
**/


void rempliCaisseAPoint(CaisseAPoint & cap,int n);


#endif
